Viele Amiga-Benutzer kennen vielleicht das leidige Problem mit den vielen verschiedenen, mehr oder weniger "exotischen" Zeilenfrequenzen des Amiga, mit denen nicht jeder Monitor etwas anzufangen weiß. Nicht einmal Monitore, die speziell für den AMIGA entwickelt wurden, wie etwa der (inzwischen aufgelassene) C 1960 oder der C 1942, können wirklich alle Modi darstellen. Besonders schlimm ist hier der Super72-Monitor, der von kaum einem Monitor richtig dargestellt werden kann.
MPATCH ist ein kleines Utility, das es ermöglicht, die Polarität und das Timingverhalten der Synchronisationsimpulse zu modifizieren und dadurch die Bildlage zu verändern.
MONITORINFO gibt die genauen Timing-Informationen einer oder mehrerer Monitor-Definitionen auf dem Bildschirm aus. Optional kann auch eine Liste aller derzeit eingebundenen Monitore ausgegeben werden.
SYSTEMVORAUSSETZUNGEN
AMIGA mit Kickstart/Workbench 2.04 oder größer und ECS/AA Grafikchipsatz
AUFRUF
MPATCH und MONITORINFO sind reine CLI-Kommandos. Beide sollten erst aufgerufen werden, nachdem die Monitordefinitionen eingebunden wurden, da beim Systemstart nur ein Monitor aktiv ist, der "default.monitor".
<monitor-name> - Der Name der zu ändernden Monitordefinition. Die Endung ".monitor" kann, muß jedoch nicht angegeben werden. Groß- und Kleinschreibung müssen jedoch genau beachtet werden. Unter Workbench 2.0 und 2.1 sind alle Monitornamen durchgehend klein geschrieben; das gilt nicht mehr für die neuen Monitore von Workbench 3.0, "DoublePAL" und "DoubleNTSC". Wenn der genaue Name der Monitordefinition nicht bekannt ist, läßt sich mit MONITORINFO LIST eine Liste aller derzeit eingebundenen Monitore ausgeben. Die Schreibweise der Monitornamen in dieser Liste entspricht genau den geforderten Namen.
HSYNCTRUE - Setzt die Polarität der horizontalen Synchronisationsimpulse auf "aktiv-high". Standardmäßig sind die Synchronisationsimpulse aller Monitordefinitionen "aktiv-low".
VSYNCTRUE - Setzt die Polarität der vertikalen Synchronisationsimpulse auf "aktiv-high". Standardmäßig sind die Synchronisationsimpulse aller Monitordefinitionen "aktiv-low".
SYNCTRUE - entspricht HSYNCTRUE VSYNCTRUE: beide Synchronisationsimpulse werden auf "aktiv-high" gesetzt.
HSYNCFALSE, VSYNCFALSE, SYNCFALSE - die Gegenstücke der oben aufgeführten Schlüsselwörter; sie wurden hauptsächlich zu Testzwecken implementiert, da unter V2.0 bis V3.0 alle Monitordefinitionen standardmäßig Synchronisationssignale mit "aktiv-low"-Pegel haben.
LOLDIS - "long line disable". Deaktiviert die Erzeugung "langer Bildschirmzeilen" durch den Grafik-Controller (Über die Bedeutung dieser "langen Bildschirmzeilen" siehe Abschnitt "TECHNISCHE HINTERGRÜNDE"). Diese Option ist eigentlich nur von Bedeutung, wenn man auf einem PAL-Amiga einen NTSC-Screen öffnen will (vermutlich auch umgekehrt, aber da habe ich keine Erfahrung). Bei allen nicht der Videonorm entsprechenden Modi ist dieses Bit von Haus aus gesetzt.
Die folgenden Optionen können nur für die Multiscan- bzw. VGA-Modi verwendet werden. Bei den Standardmodi PAL und NTSC werden sie einfach ignoriert.
HSYNCDELAY <delay> - verändert die Position des horizontalen Synchronisationsimpulses in der horizontalen Austastlücke und damit die horizontale Position des Bildes auf dem Monitor. <delay> gibt die Anzahl der 280 ns-"Ticks" an, um die der Impuls verschoben werden soll. Gültige Werte liegen zwischen 0 und 20, wobei niedrigere Werte das Bild nach rechts verschieben, höhere dagegen nach links.
HSYNCLEN <len> - verändert die Pulsbreite des horizontalen Synchronisationsimpulses. <len> gibt die gewünschte Pulsbreite in 280ns-"Ticks" an. Gültige Werte liegen zwischen 2 und 20. Der Standardwert ist 14, d.h. eine Pulsbreite von rund 4 µs. Für die meisten Monitore reicht jedoch ein Wert von 1 µs, also ein <len>-Wert von 4 aus. MPATCH erlaubt keine Werte kleiner als 2.
VSYNCDELAY <delay> - verändert die Position des vertikalen Synchronisationsimpulses in der vertikalen Austastlücke und damit die vertikale Position des Bildes auf dem Monitor. <delay> gibt die Anzahl der Bildschirmzeilen an, die zwischen dem Beginn der Austastlücke und dem Beginn des Synchronisationsimpulses vergehen sollen. Kleine Werte schieben das Bild nach unten, größere nach oben.
VSYNCLEN <len> - verändert die Pulsbreite des vertikalen Synchronisationsimpulses. <len> gibt die gewünschte Pulsbreite in Rasterzeilen an. Gültige Werte liegen zwischen 2 und 10. Der Standardwert ist 2. Dieser Wert ist weitaus weniger wichtig als HSYNCLEN; in der Regel sollte man diesen Wer nicht verändern.
HINWEIS: HSYNCLEN und HSYNCDELAY bzw. VSYNCLEN und VSYNCDELAY beeinflussen sich gegenseitig. HSYNCDELAY und HSYNCLEN dürfen zusammen nicht länger sein als die horizontale Austastlücke; in diesem Fall nimmt MPATCH keine Veränderungen vor. Gleiches gilt sinngemäß auch für VSYNCDELAY und VSYNCLEN.
MONITORINFO {<monitor-name>} [RAW] [LIST]
<monitor-name> - Der Name einer oder mehrer Monitordefinitionen. Die Endung ".monitor" kann, muß jedoch nicht angegeben werden. Groß- und Kleinschreibung müssen jedoch genau beachtet werden. Unter Workbench 2.0 und 2.1 sind alle Monitornamen durchgehend klein geschrieben; das gilt nicht mehr für die neuen Monitore von Workbench 3.0, "DoublePAL" und "DoubleNTSC". Wenn der genaue Name der Monitordefinition nicht bekannt ist, läßt sich mit der Option LIST eine Liste aller derzeit eingebundenen Monitore ausgeben. Die Schreibweise der Monitornamen in dieser Liste entspricht genau den geforderten Namen.
RAW - Gibt bei der Timinginformation für Synchronisation und Blanking statt der Werte in Mikrosekunden die tatsächlichen Werte der Hardware-Register aus. Diese Option dient hauptsächlich Testzwecken.
LIST - Gibt eine Liste aller derzeit aktiven Monitordefinitionen aus.
Die von MONITORINFO ausgegebenen Werte mögen manchen ein wenig "krumm" erscheinen; sie sind aber absolut exakt, da keine schönen "Mittelwerte" für die DMA-Timing-Zyklen verwendet werden, sondern der tatsächliche Takt der Customchips. Wer will, kann die ausgegebenen Daten ja mit einem Oszilloskop überprüfen ...
BRAUCHE ICH MPATCH ÜBERHAUPT?
Wenn Sie Ihren Amiga an einem Standard-Videomonitor wie dem 1084(S), 1085 oder Philips CM8833, oder an einem Fernsehgerät verwenden, brauchen sie MPATCH nicht.
Wenn Ihr Monitor alle Bildschirmmodi, mit denen Sie arbeiten, sauber auf dem Bildschirm darstellt, ohne daß Sie bei jedem Moduswechsel Bildlage und -größe manuell neu einstellen müssen, brauchen Sie MPATCH auch nicht. Auch Besitzer von Anti-Flicker-Karten sollten das Programm nicht benötigen.
In allen anderen Fällen, besonders wenn Sie einen Commodore 1960 oder 1942 an Ihrem Amiga betreiben, oder wenn Ihr Multiscan-Monitor die einzelnen Modi nicht korrekt trennt, sollten Sie MPATCH ausprobieren.
WIE FINDE ICH DIE RICHTIGEN EINSTELLUNGEN FÜR MEINEN MONITOR?
* Es empfiehlt sich, für die folgenden Einstellungen das PD-Utility BBlank oder ein vergleichbares Programm zu aktivieren. BBlank blendet den "Rahmen" des Bildschirms aus, es ist daher nur jener Bereich auf dem Monitor sichtbar, der auch wirklich benutzbar ist.
* Stellen Sie ihren Monitor so ein, daß ihr bevorzugter Bildschirmmodus gut sichtbar ist. Wenn der Monitor das unterstützt, ist es sinnvoll, für diese Einstellung den PAL- bzw. NTSC-Modus zu verwenden, da für diese keine softwaremäßige Bildlagekontrolle möglich ist. Wenn Ihr Monitor einen Schalter für Overscan besitzt, sollte dieser auf die entsprechende Position gebracht werden ("ADD" beim Commodore 1960). Wenn Sie ihren Computer auch zum Spielen verwenden, stellen Sie die horizontale Bildlage so ein, daß das Bild des Spieles gut auf dem Bildschirm zentriert ist. Ansonsten stellen Sie das Bild so ein, daß möglichst der gesamte Overscan-Bereich sichtbar ist. Danach sollten Sie die Kontrollen nicht mehr anrühren. Stellen Sie die vertikale Bildgröße auf "AUTO" (beim Commodore 1960, bei anderen Monitoren kann dieser Schalter auch anders heißen bzw. nicht vorhanden sein)
* Öffnen Sie ein CLI/Shell-Fenster und aktivieren Sie gleichzeitig den Overscan-Editor.
* Wählen Sie im Overscan-Editor den Monitor aus, den Sie ändern wollen, und aktivieren sie eines der beiden Felder "Edit Text Overscan" oder "Edit Graphics Overscan". Stellen Sie maximalen Overscan ein.
* Geben Sie (im CLI) ein: "MPATCH <monitor-name>", ohne jedoch <RETURN> zu drücken.
Folgen Sie nun folgender "Checkliste", um die Einstellungen für ihren Monitor zu finden:
Bild ist vertikal gestaucht: versuchen Sie HSYNCTRUE
Bild ist vertikal gestreckt: versuchen Sie SYNCTRUE
Bild ist zu weit links oder rechts: HSYNCDELAY
Bild ist zu weit oben oder unten: VSYNCDELAY
rechter Rand "flattert": versuchen Sie LOLDIS
* drücken Sie <RETURN>, aktivieren Sie wieder in den Overscan-Editor und überprüfen Sie, ob sich etwas geändert hat. Wiederholen Sie die obigen Schritte, bis sie ein zufriedenstellendes Ergebnis erreicht haben.
* Notieren Sie sich ihre Einstellungen.
* Fügen Sie eine entsprechende Zeile in ihre S:User-Startup ein, am besten ganz am Anfang, bevor die irgenwelche Ausgaben im Shell-Window erfolgen. Das ist erforderlich, damit auch etwaige änderungen an der Monitordefinition des Workbench-Screens berücksichtigt werden.
* Wiederholen Sie die obigen Schritte, bis alle Bildschirmmodi zufriedenstellend arbeiten.
TECHNISCHE HINTERGRÜNDE
SYNC-POLARITÄT
Viele Monitore, besonders (ältere) VGA-Multiscan-Monitore, benutzen die Polarität der horizontalen und vertikalen Synchronisationsimpulse, um die vertikale Bildgröße zu bestimmen. Der Begriff "Polarität" ist hier ein wenig irreführend, da die Synchronisationsimpulse immer TTL-Pegel haben, d.h. zwischen 0V und 5V liegen. Richtig wären die Bezeichnungen "aktiv-low" für "negativ" bzw. "aktiv-high" für "positiv".
Der C1960 synchronisiert mit der Standardeinstellung (beide Syncs "aktiv-low") nur bei Bildfrequenzen um die 50 bzw. 70 Hz korrekt. Bei Frequenzen um 60 Hz, also z.B. im Productivity-Modus, ist das Bild vertikal gestreckt, sodaß die obersten und untersten Bildschirmzeilen nicht mehr sichtbar sind. Bei Frequenzen größer 72 Hz wird das Bild hingegen vertikal immer mehr "gestaucht". Im ersten Fall kann man eine korrekte Anzeige erzwingen, wenn man beide Syncs auf "aktiv-high" setzt, also mit HSYNCTRUE VSYNCTRUE oder auch nur SYNCTRUE (SYNCTRUE ist eine Abkürzung für VSYNCTRUE HSYNCTRUE, siehe oben). Im zweiten Fall, der zwar bei Verwendung der Amiga-Screenmodi nicht auftritt, aber z.B. in Verbindung mit Grafikkarten, kann ein "aktiv-high" des horizonalen Synchronisationsimpulses (Option HSYNCTRUE) Abhilfe schaffen. Diese Angaben gelten wohlgemerkt nur für den C1960; auf anderen Monitoren können andere Kombinationen wirksam sein, oder eine Umschaltung der Syncs überhaupt nichts bewirken.
SYNC-DELAYS
Die Synchronisationsimpulse liegen immer innerhalb der jeweiligen Blanking-Intervalle, standardmäßig liegt der horizontale Synchronisationsimpuls etwa in der Mitte des Blanking-Intervalls, der vertikale ziemlich am Anfang des vertikalen Blanking-Intervalls. Durch "Verschieben" der Synchronisationsimpulse kann die Bildlage kontrolliert werden. Wird z.B. der horizontale Synchronisationsimpuls ganz an den Anfang des Blanking-Intervalls gesetzt, wird das Bild auf dem Monitor nach rechts verschoben, da der der Strahlrücklauf mit dem Ende des Synchronisationsimpulses beginnt und danach noch der "Rest" des Blanking-Intervalls durchlaufen werden muß, bevor mit der Anzeige der Bildes begonnen wird. Gleiches gilt - sinngemäß - auch für die vertikale Synchronisation. Man muß jedoch darauf achten, daß die Synchronisationsimpulse und die umgebenden Blanking-Intervalle nicht zu kurz sind, da sonst die Anzeige unter Umständen schon beginnt, während der Strahl noch in der Rücklaufphase ist. Außerdem dürfen die Synchronisationsimpulse eine gewisse Länge nicht unterschreiten, das sind rund 1 Mikrosekunde für den horizontalen Impuls und mindestens 2 Bildschirmzeilen für den vertikalen Impuls. Die Blanking-Intervalle werden von MPATCH nicht verändert; was die Länge der Synchronisationsimpulse betrifft, sorgt das Programm dafür, daß die Mindestwerte auf keinen Fall unterschritten werden.
SONSTIGES
MPATCH wurde auf einem A2000 mit Kickstart/Workbench 3.0, ECS Chipset, 1 MB Chipmem und einer mit 9 MB bestückten GVP GForce030/25/40 Turbokarte, sowie einem Standard-A1200, jeweils mit einem Commodore 1960 Monitor getestet und lief in beiden Fällen zufriedenstellend.
Sollten dennoch Probleme mit MPATCH auftreten, teilen Sie mir dies bitte mit. Bitte geben Sie unbedingt den genauen Typ ihres Monitors (Hersteller, Typenbezeichnung, evtl. Seriennummer) sowie ihre Systemkonfiguration (Rechner-Type und -Revisionsnummer, CPU, Speicher (Chip/Fast), Kickstart- und Workbench-Version, installierte Erweiterungen (z.B. 2 MB Chipmem-Adapter) an.
Auch wenn Sie zufriedenstellende Einstellungen für ihren Monitor gefunden haben, schicken Sie diese mit Angabe des Monitortyps an mich. Wenn das Echo groß genug ist, werde ich die Einsendungen zusammenfassen und als PD bzw. über diverse AMIGA-Zeitschriften veröffentlichen.
Meine Adresse:
Gregor S. M. Kuhlmann
Kennwort "MPATCH"
Friedhofsallee 4/5
A-2451 Hof am Leithaberge
ÖSTERREICH
WICHTIG: COPYRIGHT UND ANDERES
Alle Versionen von MPATCH und MONITORINFO sowie die dazugehörige Dokumentation sind Copyright (c) Gregor S. M. Kuhlmann.
Diese Software ist frei kopierbar, solange keine Veränderungen an der Software und/oder der Dokumentation vorgenommen werden. Insbesondere der Copyright-Vermerk darf auf keinen Fall verändert werden.
Der Vertrieb auf sogenannten "Coverdisks" von Computermagazinen ist grundsätzlich gestattet. Ich würde es begrüßen, als Anerkennung zumindest die Ausgabe des Magazins inklusive sämtlicher Disketten erhalte, auf der das Programm / die Programme veröffentlicht werden; dies ist jedoch nicht Bedingung.
Fred Fish / Amiga Library Services hat die Erlaubnis, die Software auf seinen FreshFish(tm), FrozenFish(tm) und GoldFish(tm) CDROMs zu vertreiben.